package com.aaa.day04.homework;

import com.aaa.utils.MyTool;

import java.time.Duration;
import java.time.LocalDateTime;

/**
 * @author ：Teacher陈（86521760@qq.com）
 * @date ：Created in 2024/11/15 8:47
 * @description：员工类
 * @modified By：
 * @version: 1.0
 */
public class Emp {
    int  id;
    String name;
    /**
     * 上班打卡时间
     */
    LocalDateTime checkInTime   ;
    /**
     * 下班打卡时间
     */
    LocalDateTime checkOutTime   ;

    public Emp(int id, String name, LocalDateTime checkInTime, LocalDateTime checkOutTime) {
        this.id = id;
        this.name = name;
        this.checkInTime = checkInTime;
        this.checkOutTime = checkOutTime;
    }

    public Emp() {
    }

    /**
     * 定义一个方法，判断自己工作是否够8小时
     */
    public  String  getWorkTime(){
       //计算工作时长
        Duration duration = Duration.between(this.checkInTime,this.checkOutTime);
        //判断工作是否满足8小时
        long hours = duration.toHours();
        if(hours>=8){
            return "恭喜你，可以正常下班";
        }else{
            //计算工作不足的时间
          //  Duration minusHours = duration.minusHours(8);
            //8小时的毫秒数
            long mills=8*60*60*1000L;
            long diff = mills - duration.toMillis();
            String string = MyTool.fromMillSecondToString(diff);
            return "工作不足8小时，请继续工作"+string;
        }
    }
    public  String  getWorkTime2(){
       //计算工作时长
        Duration duration = Duration.between(this.checkInTime,this.checkOutTime);
        //判断工作是否满足8小时
        long hours = duration.toHours();
        if(hours>=8){
            return "恭喜你，可以正常下班";
        }else{
            //计算工作不足的时间
            //minusHours 减去小时数
           Duration minusHours = duration.minusHours(8);
            return "工作不足8小时，请继续工作"+minusHours.toHours()+"小时"+minusHours.toMinutes()%60+"分钟"+minusHours.getSeconds()%60;
        }
    }

    public static void main(String[] args) {
        //创建一个员工对象
            //定义一个上班时间
        LocalDateTime checkInTime= LocalDateTime.of(2024,11,15,8,20,22);
       /* System.out.println("正常上班时间"+checkInTime);
        System.out.println("哺乳假上班时间"+checkInTime.plusMinutes(30));*/
            //定义一个下班时间
        LocalDateTime checkOutTime= MyTool.fromStringToLocalDateTime("2024-11-15 11:30:12");
        Emp  emp =new Emp(1000,"侯博",checkInTime,checkOutTime);
        String workTime = emp.getWorkTime2();
        System.out.println(workTime);
    }
}
